//package com.zhdl.modules.prefiresys.task;
//
//import cn.hutool.json.JSONUtil;
//import com.zhdl.common.ytools.PublicTools;
//import com.zhdl.modules.prefiresys.web.service.CollectService;
//import com.zhdl.websocket.WebSocketRunClient;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//import java.net.URI;
//import java.net.URISyntaxException;
//
//@Slf4j
//@Component
//public class WebSocketTask {
//
//    private WebSocketRunClient webSocketRunClient;
//
//    @Scheduled(fixedRate = 1000000, initialDelay = 1000)
//    public void task00() {
//       /*
//            websocket 连接路径
//         */
//        String websocketUrl = PublicTools.getString("application", "websocketUrl") + "/" + "client_" + "1";
//        /*
//            websocket 连接名称
//         */
//        String websocketName = PublicTools.getString("application", "websocketName");
//        try {
//            webSocketRunClient = new WebSocketRunClient(new URI(websocketUrl), websocketName);
//        } catch (URISyntaxException e) {
//            throw new RuntimeException(e);
//        }
//        webSocketRunClient.connect();
//        webSocketRunClient.setConnectionLostTimeout(0);
//    }
//
//    @Scheduled(fixedRate = 10000, initialDelay = 1100)
//    public void task0() {
//        /*
//            启用心跳判断
//         */
//        boolean enableReconnection = true;
//        boolean enableHeartbeat = true;
//        /*
//            休眠时间
//         */
//        Integer heartbeatInterval = 20000;
//
//        new Thread(() -> {
//            while (true) {
//                try {
//                    Thread.sleep(heartbeatInterval);
//                    /*
//                        启动心跳
//                     */
//                    if (enableHeartbeat) {
//                        webSocketRunClient.send("client" + "_" + "1");
//                    }
//                } catch (Exception e) {
//                    try {
//                        /*
//                            连接失败，重新启动心跳
//                         */
//                        if (enableReconnection) {
//                            webSocketRunClient.reconnect();
//                            webSocketRunClient.setConnectionLostTimeout(0);
//                        }
//
//                    } catch (Exception ex) {
//                        //log.error("[websocket {}] 重连异常,{}",websocketName,ex.getMessage());
//                    }
//                }
//            }
//        }).start();
//    }
//
//    @Resource
//    private CollectService collectService;
//
//    @Scheduled(fixedRate = 1000)
//    public void task1() {
//        String jsonStr = JSONUtil.toJsonStr(collectService.sseResp);
//        webSocketRunClient.send(jsonStr);
//    }
//}
